package org.jpoligonos.controller;

import org.jpoligonos.beans.Datos;
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;
import java.util.*;
import java.util.HashMap;
import java.util.Map;
import org.jpoligonos.persistencia.DatosPersistencia;
import org.jpoligonos.generales.Mensajeria;


/**
*
*  @author
*/

public class DatosController implements Serializable {
private static final long serialVersionUID = 1L;
private boolean withRelation= true;
public static Exception excepcion;



private List<Datos> datoslist;

private Datos selecteddatos;



public boolean isWithRelation() {
    return withRelation;
}
public  void setWithRelation(boolean withRelation) {
    this.withRelation = withRelation;
}
public DatosController(){
}

public Datos getSelectedDatos() {
 return selecteddatos;
}

 public void setSelectedDatos(Datos selecteddatos) {
 this.selecteddatos = selecteddatos;
}


public List<Datos> getDatoslist() {
return datoslist;
}

 public void setDatoslist(List<Datos> datoslist) {
this.datoslist = datoslist;
}
/*
*  getMensaje()
*   devuelve el mensaje encontrado...
*/
public String getMensaje() {
   String lexcepcion = excepcion.toString();
   if (lexcepcion.indexOf(":") != -1) {
       lexcepcion = lexcepcion.substring(lexcepcion.indexOf(":") + 1);
   }
  return lexcepcion;
}


/**
*
* Insert()
*/

public boolean Insert (Datos datos) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");
   if (Validate(datos)) {
     if (findByPrimaryKey(datos)==null) {
         if (!DatosPersistencia.Insert(datos)) {
                 excepcion = DatosPersistencia.excepcion;
          }
          else{
             return true;
           }
       }else{
               excepcion=new Exception(bundle.getString("msg.recordexists"));
            return false;
       }
    }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Insert()");
  }
  return false;
}


/**
*
* Update()
*/

public boolean Update (Datos datos) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");
   if (Validate(datos)) {
 if (DatosPersistencia.Exists(datos)) {
     if (!DatosPersistencia.Update(datos)) {
                excepcion = DatosPersistencia.excepcion;
     }
     else{
            return true;
     }
   }else{
               excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Update()");
  }
  return false;
}


/**
*
* Update(String sqlupdate)
*/

public boolean Update(String sqlupdate) {
try{
     if (!DatosPersistencia.Update(sqlupdate)) {
                excepcion = DatosPersistencia.excepcion;
     }
     else{
            return true;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Update()");
  }
  return false;
}


/**
*
* UpdatePrimaryKey()
*/

public boolean UpdatePrimaryKey (Datos datos_old , Datos datos) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");
   if (Validate(datos_old)) {
 if (DatosPersistencia.Exists(datos_old)) {
     if (!DatosPersistencia.UpdatePrimaryKey(datos_old,datos)) {
                excepcion = DatosPersistencia.excepcion;
     }
     else{
            return true;
     }
   }else{
               excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"UpdatePrimaryKey()");
  }
  return false;
}


/**
*
* Delete()
*/

public boolean Delete (Datos datos) {
try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");
 if (findByPrimaryKey(datos)!=null) {
     if (!DatosPersistencia.Delete(datos)) {
                excepcion = DatosPersistencia.excepcion;
     }else{
            return true;
           }
   }else{
            excepcion=new Exception(bundle.getString("msg.nofoundprimarykey"));
            return false;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Delete()");
  }
  return false;
}


/**
*
* Delete(String sqldelete)
*/

public boolean Delete(String sqldelete) {
try{
     if (!DatosPersistencia.Delete(sqldelete)) {
                excepcion = DatosPersistencia.excepcion;
     }else{
            return true;
           }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Delete()");
  }
  return false;
}


/**
*
* DeleteAll()
*/

public boolean DeleteAll() {
try{
     if (!DatosPersistencia.DeleteAll()) {
                excepcion = DatosPersistencia.excepcion;
     }
     else{
            return true;
     }
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"DeleteAll()");
  }
  return false;
}


/**
*
* Exists()
*/



public boolean Exists(Datos datos) {
try{
   return DatosPersistencia.Exists(datos);
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Exists()");
  }
 return false;
}


/**
*
* findPrimaryKey()
*/



public Datos findByPrimaryKey(Datos datos) {
try{
    this.selecteddatos = DatosPersistencia.findByPrimaryKey(datos);
    return selecteddatos;
  }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByPrimaryKey()");
  }
 return null;
}


/**
*
* findByIdproyecto()
*/

public boolean findByIdproyecto(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByIdproyecto(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByIdproyecto()");
  }
  return false;
  }


/**
*
* findByEst()
*/

public boolean findByEst(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByEst(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByEst()");
  }
  return false;
  }


/**
*
* findByDist()
*/

public boolean findByDist(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByDist(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByDist()");
  }
  return false;
  }


/**
*
* findByCuadrante()
*/

public boolean findByCuadrante(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByCuadrante(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByCuadrante()");
  }
  return false;
  }


/**
*
* findByRumbo()
*/

public boolean findByRumbo(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByRumbo(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByRumbo()");
  }
  return false;
  }


/**
*
* findByCoseno()
*/

public boolean findByCoseno(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByCoseno(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByCoseno()");
  }
  return false;
  }


/**
*
* findBySeno()
*/

public boolean findBySeno(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findBySeno(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findBySeno()");
  }
  return false;
  }


/**
*
* findByNorte()
*/

public boolean findByNorte(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByNorte(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByNorte()");
  }
  return false;
  }


/**
*
* findBySur()
*/

public boolean findBySur(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findBySur(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findBySur()");
  }
  return false;
  }


/**
*
* findByEste()
*/

public boolean findByEste(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByEste(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByEste()");
  }
  return false;
  }


/**
*
* findByOeste()
*/

public boolean findByOeste(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByOeste(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByOeste()");
  }
  return false;
  }


/**
*
* findByLatcorregida()
*/

public boolean findByLatcorregida(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByLatcorregida(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByLatcorregida()");
  }
  return false;
  }


/**
*
* findByLoncorregida()
*/

public boolean findByLoncorregida(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByLoncorregida(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByLoncorregida()");
  }
  return false;
  }


/**
*
* findByLatitud()
*/

public boolean findByLatitud(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByLatitud(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByLatitud()");
  }
  return false;
  }


/**
*
* findByLongitud()
*/

public boolean findByLongitud(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByLongitud(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByLongitud()");
  }
  return false;
  }


/**
*
* findByDoblelongitud()
*/

public boolean findByDoblelongitud(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByDoblelongitud(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByDoblelongitud()");
  }
  return false;
  }


/**
*
* findByAreamas()
*/

public boolean findByAreamas(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByAreamas(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByAreamas()");
  }
  return false;
  }


/**
*
* findByAreamenos()
*/

public boolean findByAreamenos(Datos datos) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.findByAreamenos(datos,withRelation) ;
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"findByAreamenos()");
  }
  return false;
  }


/**
*
* locateByParameters()
*/

public boolean locateByParameters(Map parametros) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.locateByParameters(parametros,withRelation);
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"locateByParameters()");
  }
  return false;
}


/**
*
* Func(String funcion, String campo)
*/

public Double Func(String funcion, String campo) {
  try{
     return DatosPersistencia.Func(funcion,campo);
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Func()");
  }
  return 0.0;
}


/**
*
* Double Func(String funcion, String campo, String where)
*/

public Double Func(String funcion, String campo,String where) {
  try{
     return DatosPersistencia.Func(funcion,campo,where);
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Func()");
  }
  return 0.0;
}


/**
*
* Count()
*/

public Integer Count() {
  try{
     int x =DatosPersistencia.Count();
    return x;
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Count()");
  }
 return 0;
}


/**
*
* Count(String sql)
*/

public Integer Count(String sqlquery) {
  try{
     int x =DatosPersistencia.Count(sqlquery);
    return x;
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Count()");
  }
 return 0;
}


/**
*
* Query()
*/

public boolean Query(String query) {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     datoslist = DatosPersistencia.Query(query,withRelation);
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"Query()");
  }
  return false;
}


/**
*
* SelectAll()
*/



public boolean SelectAll() {
  try{
     if(datoslist != null){
        datoslist.removeAll(datoslist);
     }
     Map<String, String> parametros = new HashMap<String, String>();
     datoslist = DatosPersistencia.getListRecords(parametros,withRelation);
     if (datoslist== null) {
                excepcion = DatosPersistencia.excepcion;
       }
       else{
            return true;
            }
    }catch(Exception ex){
     Mensajeria.MensajeError( ex ,"SelectAll()");
  }
            return false;
}


public boolean Validate(Datos datos) {
 try{
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("org/jpoligonos/properties/mensajes");

if (datos.getIdproyecto() == null || datos.getIdproyecto().equals("")){
   excepcion=new Exception(bundle.getString("idproyecto")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getEst() == null || datos.getEst().equals("")){
   excepcion=new Exception(bundle.getString("est")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getDist() == null || datos.getDist().equals("")){
   excepcion=new Exception(bundle.getString("dist")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getCuadrante() == null || datos.getCuadrante().equals("")){
   excepcion=new Exception(bundle.getString("cuadrante")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getRumbo() == null || datos.getRumbo().equals("")){
   excepcion=new Exception(bundle.getString("rumbo")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getCoseno() == null || datos.getCoseno().equals("")){
   excepcion=new Exception(bundle.getString("coseno")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getSeno() == null || datos.getSeno().equals("")){
   excepcion=new Exception(bundle.getString("seno")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getNorte() == null || datos.getNorte().equals("")){
   excepcion=new Exception(bundle.getString("norte")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getSur() == null || datos.getSur().equals("")){
   excepcion=new Exception(bundle.getString("sur")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getEste() == null || datos.getEste().equals("")){
   excepcion=new Exception(bundle.getString("este")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getOeste() == null || datos.getOeste().equals("")){
   excepcion=new Exception(bundle.getString("oeste")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getLatcorregida() == null || datos.getLatcorregida().equals("")){
   excepcion=new Exception(bundle.getString("latcorregida")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getLoncorregida() == null || datos.getLoncorregida().equals("")){
   excepcion=new Exception(bundle.getString("loncorregida")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getLatitud() == null || datos.getLatitud().equals("")){
   excepcion=new Exception(bundle.getString("latitud")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getLongitud() == null || datos.getLongitud().equals("")){
   excepcion=new Exception(bundle.getString("longitud")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getDoblelongitud() == null || datos.getDoblelongitud().equals("")){
   excepcion=new Exception(bundle.getString("doblelongitud")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getAreamas() == null || datos.getAreamas().equals("")){
   excepcion=new Exception(bundle.getString("areamas")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
if (datos.getAreamenos() == null || datos.getAreamenos().equals("")){
   excepcion=new Exception(bundle.getString("areamenos")  + "  " + bundle.getString("msg.nonulo"));
  return false;
}
  return true;
 }catch(Exception ex){
   Mensajeria.MensajeError(ex, "Validate()");
  return false;

  }
}


}
